#ifndef __IMAPX_BASE_REG_H
#define __IMAPX_BASE_REG_H


/* XXX U-BOOT XXX */

#define IMAPX200_SDRAM_PA     		(0x40000000)


#define PERIPHERAL_BASE_ADDR_PA			(0x20C00000)


/* Peripheral main address remap */

#define SYSMGR_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0)
#define EMCPC_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x10000)
#define EMCPA_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x20000)
#define EMCPB_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x30000)
#define DMA_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x40000)
#define NAND_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x50000)
#define SDIO_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x60000)
#define CF_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x70000)

#define USBHOST_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x80000)
#define USBOTG_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x90000)
#define MPDMA_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0xA0000)
#define INTR_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0xB0000)
#define CAMERA_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0xC0000)
#define IDS_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0xD0000)
#define MAC_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0xE0000)

#define VENC_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x100000)
#define VDEC_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x110000)

#define TIMER_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x130000)
#define PWM_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x170000)

#define WDT_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x190000)
#define I2C_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x1A0000)
#define RTC_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x1C0000)
#define IIS_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x1D0000)
#define AC97_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x1E0000)
#define SPD_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x1F0000)

#define GPIO_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x210000)
#define UART_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x220000)
#define KEYBD_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x260000)
#define PIC_BASE_REG_PA				(PERIPHERAL_BASE_ADDR_PA+0x270000)

#define GRAPHIC_BASE_REG_PA			(PERIPHERAL_BASE_ADDR_PA+0x300000)



/* Peripheral sub address remap */

/* SD/SDIO */
#define SD0_BASE_REG_PA				(SDIO_BASE_REG_PA+0x0000)
#define SD1_BASE_REG_PA				(SDIO_BASE_REG_PA+0x1000)
#define SD2_BASE_REG_PA				(SDIO_BASE_REG_PA+0x2000)

/* USB HOST CLASS */
#define USBH11_BASE_REG_PA			(USBHOST_BASE_REG_PA+0x0000)
#define USBH20_BASE_REG_PA			(USBHOST_BASE_REG_PA+0x1000)

/* IDS CLASS */
#define LCD_BASE_REG_PA				(IDS_BASE_REG_PA+0x0000)
#define OSD_BASE_REG_PA				(IDS_BASE_REG_PA+0x1000)
#define I80_BASE_REG_PA				(IDS_BASE_REG_PA+0x3000)

/* IIC CLASS */
#define I2C0_BASE_REG_PA			(I2C_BASE_REG_PA+0x0000)
#define I2C1_BASE_REG_PA			(I2C_BASE_REG_PA+0x1000)

/* SPI CLASS */
#define SSI_MST0_BASE_REG_PA			(SPD_BASE_REG_PA+0x0000)
#define SSI_MST1_BASE_REG_PA			(SPD_BASE_REG_PA+0x1000)
#define SSI_MST2_BASE_REG_PA			(SPD_BASE_REG_PA+0x2000)
#define SSI_SLV_BASE_REG_PA			(SPD_BASE_REG_PA+0x3000)
#define SPI_BASE_REG_PA				(SPD_BASE_REG_PA+0x4000)

/* UART CLASS */
#define UART0_BASE_REG_PA			(UART_BASE_REG_PA+0x0000)
#define UART1_BASE_REG_PA			(UART_BASE_REG_PA+0x1000)
#define UART2_BASE_REG_PA			(UART_BASE_REG_PA+0x2000)
#define UART3_BASE_REG_PA			(UART_BASE_REG_PA+0x3000)

/* PIC CLASS */
#define PIC0_BASE_REG_PA			(PIC_BASE_REG_PA+0x0000)
#define PIC1_BASE_REG_PA			(PIC_BASE_REG_PA+0x1000)

#endif
